Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


meshchatx/src/frontend/components/translator/TranslatorPage.vue 5567022348aebbe4b6a1b5d7ea8d0fb04a3cacde (55670223) Text, 35.41 KB

T8b949e<!-- SPDX-License-Identifier: 0BSD -->

Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col flex-1 overflow-hidden min-w-0 bg-slate-50 dark:bg-zinc-950"Tb4b4b4>
Tb4b4b4<Tff7b72ToolsPageHeader
Te6edf3iconTff7b72=Ta5d6ff"translate"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'tools.translator.title'Tb4b4b4)Ta5d6ff"
Tb4b4b4:Te6edf3descriptionTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'tools.translator.description'Tb4b4b4)Ta5d6ff"
Te6edf3accentTff7b72=Ta5d6ff"indigo"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto w-full px-4 md:px-5 lg:px-8 py-6 pb-[max(1.5rem,env(safe-area-inset-bottom))]"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-4 w-full max-w-4xl mx-auto"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"glass-card space-y-5"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3configTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"space-y-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-800 dark:text-gray-200"Tb4b4b4>Translation backendsTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3hasArgosTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex items-start gap-3 cursor-pointer p-2 rounded-lg hover:bg-slate-100/80 dark:hover:bg-zinc-900/40"
Tb4b4b4>
Tb4b4b4<Tff7b72Toggle
Tb4b4b4:Te6edf3model-valueTff7b72=Ta5d6ff"Te6edf3configTb4b4b4.Te6edf3translator_argos_enabledTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3model-valueTff7b72=Ta5d6ff"Te6edf3onArgosEnabledChangeTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"block text-sm font-medium text-gray-900 dark:text-white"
Tb4b4b4>Argos Translate (local)Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400"
Tb4b4b4>Local packages when Argos is installed. Load languages to refresh this list.Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72label
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3libreClientAvailableTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex items-start gap-3 cursor-pointer p-2 rounded-lg hover:bg-slate-100/80 dark:hover:bg-zinc-900/40"
Tb4b4b4>
Tb4b4b4<Tff7b72Toggle
Tb4b4b4:Te6edf3model-valueTff7b72=Ta5d6ff"Te6edf3configTb4b4b4.Te6edf3translator_libretranslate_enabledTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3model-valueTff7b72=Ta5d6ff"Te6edf3onLibreEnabledChangeTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"block text-sm font-medium text-gray-900 dark:text-white"
Tb4b4b4>LibreTranslate (HTTP)Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400"
Tb4b4b4>Set the base URL below, then enable. Use Refresh languages after the server is
up.Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3libreClientAvailable Tff7b72&& Tff7b72!Te6edf3libretranslateReachableTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-xs text-amber-800/90 dark:text-amber-200/80 px-2 -mt-1"
Tb4b4b4>
No response from the LibreTranslate URL yet. Check the address, start the service, and tap
Refresh languages.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"border-b border-gray-200 dark:border-zinc-700"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3hasArgos Tff7b72|| Te6edf3libreClientAvailableTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"flex -mb-px"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3hasArgosTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"px-4 py-2 text-sm font-semibold border-b-2 transition-colors"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3translationMode Tff7b72=== Ta5d6ff'argos'
Tff7b72? Ta5d6ff'border-blue-500 text-blue-600 dark:border-blue-400 dark:text-blue-300'
Tff7b72: Ta5d6ff'border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72= Ta5d6ff'argos'Ta5d6ff"
Tb4b4b4>
Argos Translate
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3libreClientAvailableTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"px-4 py-2 text-sm font-semibold border-b-2 transition-colors"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3translationMode Tff7b72=== Ta5d6ff'libretranslate'
Tff7b72? Ta5d6ff'border-blue-500 text-blue-600 dark:border-blue-400 dark:text-blue-300'
Tff7b72: Ta5d6ff'border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72= Ta5d6ff'libretranslate'Ta5d6ff"
Tb4b4b4>
LibreTranslate
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72=== Ta5d6ff'libretranslate'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-3 rounded-lg bg-gray-50 dark:bg-zinc-800/50 border border-gray-100 dark:border-zinc-700/50 space-y-3"
Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"glass-label mb-2"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"translator.api_server"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3libretranslateUrlTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3placeholderTff7b72=Ta5d6ff"http://localhost:5000"
Te6edf3classTff7b72=Ta5d6ff"input-field"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400 mt-1"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"translator.api_server_description"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"glass-label mb-2"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"translator.api_key_optional"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3libretranslateApiKeyTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"password"
Te6edf3autocompleteTff7b72=Ta5d6ff"off"
Te6edf3classTff7b72=Ta5d6ff"input-field"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'translator.api_key_placeholder'Tb4b4b4)Ta5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400 mt-1"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"translator.api_key_description"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"grid lg:grid-cols-2 gap-4"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"glass-label"Tb4b4b4>Source LanguageTb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72select Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3sourceLangTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"input-field"Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72=== Ta5d6ff'libretranslate'Ta5d6ff" Te6edf3valueTff7b72=Ta5d6ff"auto"Tb4b4b4>Auto-detectTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3lang Tff7b72in Te6edf3filteredLanguagesTa5d6ff" Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Ta5d6ff`Ta5d6ffsrc-Tffd700${Te6edf3langTb4b4b4.Te6edf3codeTffd700}Ta5d6ff`Ta5d6ff" Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"Te6edf3langTb4b4b4.Te6edf3codeTa5d6ff"Tb4b4b4>
Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3name Tff7b72}} (Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3code Tff7b72}})
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"glass-label"Tb4b4b4>Target LanguageTb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72select Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3targetLangTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"input-field"Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff""Tb4b4b4>Select target languageTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3lang Tff7b72in Te6edf3filteredLanguagesTa5d6ff" Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Ta5d6ff`Ta5d6fftgt-Tffd700${Te6edf3langTb4b4b4.Te6edf3codeTffd700}Ta5d6ff`Ta5d6ff" Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"Te6edf3langTb4b4b4.Te6edf3codeTa5d6ff"Tb4b4b4>
Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3name Tff7b72}} (Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3code Tff7b72}})
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72=== Ta5d6ff'argos' Tff7b72&& Tff7b72!Te6edf3hasArgosTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-4 rounded-xl bg-amber-50 dark:bg-amber-900/10 border border-amber-200/50 dark:border-amber-800/30"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-2 bg-amber-100 dark:bg-amber-900/30 rounded-lg"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"information-outline"
Te6edf3classTff7b72=Ta5d6ff"size-5 text-amber-600 dark:text-amber-400"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 text-sm text-amber-800 dark:text-amber-200"Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"font-bold mb-1"Tb4b4b4>Argos Translate not detectedTb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"mb-4 opacity-90"Tb4b4b4>
To use local translation, you must install the Argos Translate package using one of
the following methods:
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"grid sm:grid-cols-2 gap-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs font-semibold uppercase tracking-wider opacity-70"
Tb4b4b4>Method 1: pip (venv)Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"text-amber-600 dark:text-amber-400 hover:scale-110 transition-transform"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3copyToClipboardTb4b4b4(Ta5d6ff'pip install argostranslate'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"content-copy" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-amber-100/50 dark:bg-black/30 p-2 rounded-sm font-mono text-xs break-all"
Tb4b4b4>
pip install argostranslate
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs font-semibold uppercase tracking-wider opacity-70"
Tb4b4b4>Method 2: pipxTb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"text-amber-600 dark:text-amber-400 hover:scale-110 transition-transform"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3copyToClipboardTb4b4b4(Ta5d6ff'pipx install argostranslate'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"content-copy" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-amber-100/50 dark:bg-black/30 p-2 rounded-sm font-mono text-xs break-all"
Tb4b4b4>
pipx install argostranslate
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"mt-4 text-xs opacity-70 italic"Tb4b4b4>
Note: After installation, you may need to restart the application and install
language packages via the Argos Translate CLI.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72=== Ta5d6ff'argos' Tff7b72&& Te6edf3hasArgos Tff7b72&& Tff7b72!Te6edf3hasArgosLanguagesTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-4 rounded-xl bg-blue-50 dark:bg-blue-900/10 border border-blue-200/50 dark:border-blue-800/30"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-2 bg-blue-100 dark:bg-blue-900/30 rounded-lg"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"information-outline"
Te6edf3classTff7b72=Ta5d6ff"size-5 text-blue-600 dark:text-blue-400"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 text-sm text-blue-800 dark:text-blue-200"Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"font-bold mb-1"Tb4b4b4>No language packages detectedTb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"mb-4 opacity-90"Tb4b4b4>
Argos Translate is installed but no language packages are available. Install
language packages using the buttons below or the CLI commands:
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs font-semibold uppercase tracking-wider opacity-70"
Tb4b4b4>Install all languagesTb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"text-blue-600 dark:text-blue-400 hover:scale-110 transition-transform"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3copyToClipboardTb4b4b4(Ta5d6ff'argospm install translate'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"content-copy" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"primary-chip px-3 py-1.5 text-xs"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3isInstallingLanguagesTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3installLanguagesTb4b4b4(Ta5d6ff'translate'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isInstallingLanguagesTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"inline-block w-3 h-3 border-2 border-white border-t-transparent rounded-full animate-spin mr-1"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3v-else Te6edf3icon-nameTff7b72=Ta5d6ff"download" Te6edf3classTff7b72=Ta5d6ff"w-3 h-3" Tb4b4b4/Tb4b4b4>
Install All
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-blue-100/50 dark:bg-black/30 p-2 rounded-sm font-mono text-xs break-all flex-1"
Tb4b4b4>
argospm install translate
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs font-semibold uppercase tracking-wider opacity-70"
Tb4b4b4>Install specific language pair (example: English to German)Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"text-blue-600 dark:text-blue-400 hover:scale-110 transition-transform"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3copyToClipboardTb4b4b4(Ta5d6ff'argospm install translate-en_de'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"content-copy" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-blue-100/50 dark:bg-black/30 p-2 rounded-sm font-mono text-xs break-all"
Tb4b4b4>
argospm install translate-en_de
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"mt-4 text-xs opacity-70 italic"Tb4b4b4>
After installing language packages, click "Refresh Languages" to reload available
languages.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"glass-label"Tb4b4b4>Text to TranslateTb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72textarea
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3inputTextTa5d6ff"
Te6edf3rowsTff7b72=Ta5d6ff"6"
Te6edf3placeholderTff7b72=Ta5d6ff"Enter text to translate..."
Te6edf3classTff7b72=Ta5d6ff"input-field"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3isTranslatingTa5d6ff"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72textareaTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"primary-chip px-4 py-2 text-sm"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Tff7b72!Te6edf3canTranslate Tff7b72|| Te6edf3isTranslatingTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3translateTextTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isTranslatingTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin mr-2"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3v-else Te6edf3icon-nameTff7b72=Ta5d6ff"translate" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3isTranslating Tff7b72? Ta5d6ff"Translating..." Tff7b72: Ta5d6ff"Translate" Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-4 py-2 text-sm"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Tff7b72!Te6edf3targetLang Tff7b72|| Te6edf3isTranslatingTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3swapLanguagesTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"swap-horizontal" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Swap
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3typeTff7b72=Ta5d6ff"button" Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-4 py-2 text-sm" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3clearTextTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"broom" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Clear
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3translationResultTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-900 dark:text-white"Tb4b4b4>TranslationTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400"Tb4b4b4>
Source: Tff7b72{{ Te6edf3translationResultTb4b4b4.Te6edf3source Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"p-4 rounded-lg bg-gray-50 dark:bg-zinc-800 border border-gray-200 dark:border-zinc-700"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-gray-900 dark:text-white whitespace-pre-wrap"Tb4b4b4>
Tff7b72{{ Te6edf3translationResultTb4b4b4.Te6edf3translated_text Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400"Tb4b4b4>
Detected: Tff7b72{{ Te6edf3translationResultTb4b4b4.Te6edf3source_lang Tff7b72}} → Tff7b72{{ Te6edf3translationResultTb4b4b4.Te6edf3target_lang Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3errorTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-3 rounded-lg bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-300"
Tb4b4b4>
Tff7b72{{ Te6edf3error Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"glass-card space-y-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-900 dark:text-white"Tb4b4b4>Available LanguagesTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400 mb-2"Tb4b4b4>
Languages are loaded from LibreTranslate API or Argos Translate packages.
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3lang Tff7b72in Te6edf3filteredLanguagesTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3langTb4b4b4.Te6edf3codeTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"px-2 py-1 rounded-sm text-xs bg-gray-100 dark:bg-zinc-800 text-gray-700 dark:text-gray-300"
Tb4b4b4>
Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3name Tff7b72}} (Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3code Tff7b72}})
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-gray-500 dark:text-gray-500"Tb4b4b4>- Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3source Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-2 mt-2"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3typeTff7b72=Ta5d6ff"button" Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-4 py-2 text-sm" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3loadLanguagesTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"refresh" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Refresh Languages
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3translationMode Tff7b72=== Ta5d6ff'argos' Tff7b72&& Te6edf3hasArgosTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"primary-chip px-4 py-2 text-sm"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3isInstallingLanguagesTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3installLanguagesTb4b4b4(Ta5d6ff'translate'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isInstallingLanguagesTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin mr-2"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3v-else Te6edf3icon-nameTff7b72=Ta5d6ff"download" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Install All Languages
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3DialogUtils Tff7b72from Ta5d6ff"../../js/DialogUtils"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3Toggle Tff7b72from Ta5d6ff"../forms/Toggle.vue"Tb4b4b4;
Tff7b72import Te6edf3ToolsPageHeader Tff7b72from Ta5d6ff"../tools/ToolsPageHeader.vue"Tb4b4b4;

Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"TranslatorPage"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Te6edf3ToggleTb4b4b4,
Te6edf3ToolsPageHeaderTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3configTff7b72: Tff7b72nullTb4b4b4,
Te6edf3languagesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3sourceLangTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3targetLangTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3inputTextTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3translationModeTff7b72: Ta5d6ff"argos"Tb4b4b4,
Te6edf3libretranslateUrlTff7b72: Ta5d6ff"http://localhost:5000"Tb4b4b4,
Te6edf3libretranslateApiKeyTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3hasArgosTff7b72: Tff7b72falseTb4b4b4,
Te6edf3libreClientAvailableTff7b72: Tff7b72falseTb4b4b4,
Te6edf3libretranslateReachableTff7b72: Tff7b72falseTb4b4b4,
Te6edf3debouncedLibrePersistTimerTff7b72: Tff7b72nullTb4b4b4,
Te6edf3isTranslatingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3isInstallingLanguagesTff7b72: Tff7b72falseTb4b4b4,
Te6edf3translationResultTff7b72: Tff7b72nullTb4b4b4,
Te6edf3errorTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3canTranslateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3a Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTff7b72?Tb4b4b4.Te6edf3translator_argos_enabledTb4b4b4;
Tff7b72const Te6edf3l Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTff7b72?Tb4b4b4.Te6edf3translator_libretranslate_enabledTb4b4b4;
Tff7b72const Te6edf3argosOk Tff7b72= Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos" Tff7b72&& Te6edf3aTb4b4b4;
Tff7b72const Te6edf3libreOk Tff7b72= Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate" Tff7b72&& Te6edf3lTb4b4b4;
Tff7b72return Tb4b4b4(
Tb4b4b4(Te6edf3argosOk Tff7b72|| Te6edf3libreOkTb4b4b4) Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3inputTextTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3length Tff7b72> T79c0ff0 Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3targetLang Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3targetLang Tff7b72!== Tff7b72thisTb4b4b4.Te6edf3sourceLang
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3useArgosTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hasArgosLanguagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3languagesTb4b4b4.Te6edf3someTb4b4b4(Tb4b4b4(Te6edf3langTb4b4b4) Tb4b4b4=> Te6edf3langTb4b4b4.Te6edf3source Tff7b72=== Ta5d6ff"argos"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3filteredLanguagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3languagesTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3langTb4b4b4) Tb4b4b4=> Te6edf3langTb4b4b4.Te6edf3source Tff7b72=== Ta5d6ff"argos"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3languagesTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3langTb4b4b4) Tb4b4b4=> Te6edf3langTb4b4b4.Te6edf3source Tff7b72=== Ta5d6ff"libretranslate"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3watchTff7b72: Tb4b4b4{
Te6edf3translationModeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate" Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3sourceLangTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Ta5d6ff"auto"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos" Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72=== Ta5d6ff"auto"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3loadLanguagesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3libretranslateUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3scheduleDebouncedLibrePersistTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadLanguagesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3libretranslateApiKeyTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3scheduleDebouncedLibrePersistTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadLanguagesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3getConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3getConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3config Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3configTff7b72?Tb4b4b4.Te6edf3libretranslate_urlTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3libretranslateUrl Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3libretranslate_urlTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3libretranslateApiKey Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3libretranslate_api_key Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadLanguagesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3syncTranslationModeFromBackendsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3canArgos Tff7b72= Tff7b72thisTb4b4b4.Te6edf3hasArgosTb4b4b4;
Tff7b72const Te6edf3canLibre Tff7b72= Tff7b72thisTb4b4b4.Te6edf3libreClientAvailableTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos" Tff7b72&& Tff7b72!Te6edf3canArgos Tff7b72&& Te6edf3canLibreTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72= Ta5d6ff"libretranslate"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Ta5d6ff"auto"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate" Tff7b72&& Tff7b72!Te6edf3canLibre Tff7b72&& Te6edf3canArgosTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72= Ta5d6ff"argos"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72=== Ta5d6ff"auto"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3canArgos Tff7b72&& Tff7b72!Te6edf3canLibreTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72= Ta5d6ff"argos"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72!Te6edf3canArgos Tff7b72&& Te6edf3canLibreTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72= Ta5d6ff"libretranslate"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3sourceLangTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Ta5d6ff"auto"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onArgosEnabledChangeTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3translator_argos_enabled Tff7b72= Te6edf3valueTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Tb4b4b4{ Te6edf3translator_argos_enabledTff7b72: Te6edf3value Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onLibreEnabledChangeTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3translator_libretranslate_enabled Tff7b72= Te6edf3valueTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Tb4b4b4{ Te6edf3translator_libretranslate_enabledTff7b72: Te6edf3value Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3scheduleDebouncedLibrePersistTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3debouncedLibrePersistTimerTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3debouncedLibrePersistTimerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3debouncedLibrePersistTimer Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3persistLibreClientSettingsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff800Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3persistLibreClientSettingsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3urlTarget Tff7b72= Tff7b72thisTb4b4b4.Te6edf3libretranslateUrl Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3keyTarget Tff7b72= Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3libretranslateApiKey Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3urlEq Tff7b72= Te6edf3urlTarget Tff7b72=== Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3libretranslate_url Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3cfgKeyRaw Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3libretranslate_api_keyTb4b4b4;
Tff7b72const Te6edf3cfgKey Tff7b72= Te6edf3cfgKeyRaw Tff7b72== Tff7b72null Tff7b72? Ta5d6ff"" Tff7b72: Tffa657StringTb4b4b4(Te6edf3cfgKeyRawTb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3keyEq Tff7b72= Te6edf3keyTarget Tff7b72=== Te6edf3cfgKeyTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3urlEq Tff7b72&& Te6edf3keyEqTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3patch Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3urlEqTb4b4b4) Tb4b4b4{
Te6edf3patchTb4b4b4.Te6edf3libretranslate_url Tff7b72= Tff7b72thisTb4b4b4.Te6edf3libretranslateUrlTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3keyEqTb4b4b4) Tb4b4b4{
Te6edf3patchTb4b4b4.Te6edf3libretranslate_api_key Tff7b72= Te6edf3keyTarget Tff7b72=== Ta5d6ff"" Tff7b72? Tff7b72null Tff7b72: Te6edf3keyTargetTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Te6edf3patchTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3urlEqTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3libretranslate_url Tff7b72= Tff7b72thisTb4b4b4.Te6edf3libretranslateUrlTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3keyEqTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3libretranslate_api_key Tff7b72= Te6edf3keyTarget Tff7b72=== Ta5d6ff"" Tff7b72? Tff7b72null Tff7b72: Te6edf3keyTargetTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3loadLanguagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3params Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate" Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3libretranslateUrlTb4b4b4) Tb4b4b4{
Te6edf3paramsTb4b4b4.Te6edf3libretranslate_url Tff7b72= Tff7b72thisTb4b4b4.Te6edf3libretranslateUrlTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/translator/languages"Tb4b4b4, Tb4b4b4{ Te6edf3params Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3languages Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3languages Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3hasArgos Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3has_argosTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3libreClientAvailable Tff7b72= Tffa657BooleanTb4b4b4(Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3libre_client_availableTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3libretranslateReachable Tff7b72= Tffa657BooleanTb4b4b4(Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3libretranslate_reachableTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3syncTranslationModeFromBackendsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3DialogUtilsTb4b4b4.Te6edf3alertTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"translator.failed_load_languages"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3copyToClipboardTb4b4b4(Te6edf3textTb4b4b4) Tb4b4b4{
Te6edf3navigatorTb4b4b4.Te6edf3clipboardTb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"common.copied"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3translateTextTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3canTranslate Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3isTranslatingTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3targetLangTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72= Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"translator.select_languages_warning"Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos" Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72=== Ta5d6ff"auto"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72= Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"translator.auto_detect_not_supported"Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72thisTb4b4b4.Te6edf3isTranslating Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3translationResult Tff7b72= Tff7b72nullTb4b4b4;

Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3payload Tff7b72= Tb4b4b4{
Te6edf3textTff7b72: Tff7b72thisTb4b4b4.Te6edf3inputTextTb4b4b4,
Te6edf3source_langTff7b72: Tff7b72thisTb4b4b4.Te6edf3sourceLangTb4b4b4,
Te6edf3target_langTff7b72: Tff7b72thisTb4b4b4.Te6edf3targetLangTb4b4b4,
Te6edf3use_argosTff7b72: Tff7b72thisTb4b4b4.Te6edf3useArgosTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate" Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3libretranslateUrlTb4b4b4) Tb4b4b4{
Te6edf3payloadTb4b4b4.Te6edf3libretranslate_url Tff7b72= Tff7b72thisTb4b4b4.Te6edf3libretranslateUrlTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3keyTrimmed Tff7b72= Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3libretranslateApiKey Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"libretranslate" Tff7b72&& Te6edf3keyTrimmedTb4b4b4) Tb4b4b4{
Te6edf3payloadTb4b4b4.Te6edf3libretranslate_api_key Tff7b72= Te6edf3keyTrimmedTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/translator/translate"Tb4b4b4, Te6edf3payloadTb4b4b4)Tb4b4b4;

Tff7b72thisTb4b4b4.Te6edf3translationResult Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationResultTb4b4b4.Te6edf3source_lang Tff7b72=== Ta5d6ff"auto"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Tff7b72thisTb4b4b4.Te6edf3translationResultTb4b4b4.Te6edf3source_langTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72= Te6edf3eTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"translator.failed_translate"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isTranslating Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3swapLanguagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3targetLangTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(
Tff7b72thisTb4b4b4.Te6edf3translationResult Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3translationResultTb4b4b4.Te6edf3source_lang Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3translationResultTb4b4b4.Te6edf3source_lang Tff7b72!== Ta5d6ff"auto"
Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3temp Tff7b72= Tff7b72thisTb4b4b4.Te6edf3sourceLangTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Tff7b72thisTb4b4b4.Te6edf3targetLangTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3targetLang Tff7b72= Te6edf3tempTb4b4b4;

Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationResultTb4b4b4.Te6edf3translated_textTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3inputText Tff7b72= Tff7b72thisTb4b4b4.Te6edf3translationResultTb4b4b4.Te6edf3translated_textTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3translationResult Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72const Te6edf3temp Tff7b72= Tff7b72thisTb4b4b4.Te6edf3sourceLangTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3translationMode Tff7b72=== Ta5d6ff"argos"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3targetLangTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Tff7b72thisTb4b4b4.Te6edf3targetLangTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3targetLang Tff7b72= Te6edf3temp Tff7b72&& Te6edf3temp Tff7b72!== Ta5d6ff"auto" Tff7b72? Te6edf3temp Tff7b72: Ta5d6ff""Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sourceLang Tff7b72= Tff7b72thisTb4b4b4.Te6edf3targetLang Tff7b72|| Ta5d6ff"auto"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3targetLang Tff7b72= Te6edf3temp Tff7b72&& Te6edf3temp Tff7b72!== Ta5d6ff"auto" Tff7b72? Te6edf3temp Tff7b72: Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3clearTextTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3inputText Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3translationResult Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3installLanguagesTb4b4b4(Te6edf3packageNameTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3isInstallingLanguagesTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72thisTb4b4b4.Te6edf3isInstallingLanguages Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72= Tff7b72nullTb4b4b4;

Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/translator/install-languages"Tb4b4b4, Tb4b4b4{
Tff7b72packageTff7b72: Te6edf3packageNameTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3message Tff7b72|| Ta5d6ff"Languages installed successfully"Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadLanguagesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3error Tff7b72=
Te6edf3eTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Ta5d6ff"Failed to install languages. Make sure argospm is available in PATH."Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isInstallingLanguages Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────